Streaming media typically includes audio and/or video transmitted over networks, such as, for example, the Internet, in a streaming or continuous fashion. In streaming media applications, streaming audio and/or video data may be played back without the data being completely downloaded first. Streaming media may, thus, be viewed or listened to in “real-time” as the data is received. Streaming media may be user-controlled (e.g., on-demand, pay-per-view movies, etc.) or server-controlled (e.g., webcasting).
There are several network-based streaming services including, for example, audio streaming and video-on-demand (cable, Internet Protocol Television (IPTV)). Audio streaming (voice or music) may include the distribution of voice or music containing media over the Internet for user listening. Video-on-demand (VOD) allows users to select and watch video content over a network as part of an interactive television system. VOD systems may stream content allowing viewing while the video is being downloaded.
Networks, such as Internet Protocol (IP) networks, carry bursty traffic and can experience occasional periods of congestion, loss or high latency. When delivering rich media, such as, for example, streaming media including audio and/or video over an IP network, it is common to provide buffering at the receiver end of the communication. As long as average bandwidth delivery is sufficient to support the media stream and instantaneous degradations are shorter in duration than the amount of play time held in the buffer, the media can be played without interruption. A drawback with existing streaming media playback systems is that when initiating a media stream (e.g., at channel change time), the buffer must fill before media playback begins. Therefore, there is a tradeoff between better robustness to instantaneous network degradation (i.e., achieved by buffering for a longer time period) versus faster channel change (i.e., achieved by buffering a shorter time period).